home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / x11 / strategy / xvmahjon.por / xvmahjon / xvmahjongg / sunview / mahjongg.h < prev    next >
C/C++ Source or Header  |  1991-12-20  |  5KB  |  227 lines

  1. /*
  2.  *    Copyright 1988, Mark Holm
  3.  *            Exceptions
  4.  *
  5.  *    Acknowledgments to Dorothy Robinson for her artistic
  6.  *     abilities in drawing the icons and to Jim Batch for
  7.  *     technical support and graphical concepts (which I abandoned in favor
  8.  *       of the easy way out).
  9.  *
  10.  *    Permission is given to copy and distribute for non-profit purposes.
  11.  *
  12.  */
  13.  
  14. #ifndef lint
  15. static char *rcsh = "$header$ Copyright 1988 Mark A. Holm";
  16. #endif !lint
  17.  
  18. /*
  19.  * $log$
  20.  */
  21.  
  22. #define RANDOM(x)    ((random() >> 8) % x)
  23.  
  24. #define boolean int
  25. #define TRUE 1
  26. #define FALSE 0
  27. #define MAX_COLORS        7    /* maximum colors in color map excludingblack */
  28.  
  29. /* extra window definitions */
  30. #define BORDER        5    /* border width between panels */
  31.  
  32. /* define tile playing area offsets from frame edges */
  33. #define X_LOC 30
  34. #define Y_LOC 40
  35.  
  36. #define W_BASE_TILE     58
  37. #define H_BASE_TILE     59
  38. #define S_TILE_SHADOW    6
  39. #define B_TILE_SHADOW    5
  40. #define WIDE_MAX_TILES  15
  41. #define HIGH_MAX_TILES  8
  42. #define PLAY_X_MAX    ((W_BASE_TILE * WIDE_MAX_TILES) + S_TILE_SHADOW + (2 * X_LOC))
  43. #define PLAY_Y_MAX    ((H_BASE_TILE * HIGH_MAX_TILES)  + B_TILE_SHADOW + (2 * Y_LOC))
  44. #define MESS_X_MAX    (PLAY_X_MAX)
  45. #define MESS_Y_MAX    (H_BASE_TILE * 3)
  46. #define FRAME_X_MAX    (PLAY_X_MAX )
  47. #define FRAME_Y_MAX    (PLAY_Y_MAX + MESS_Y_MAX + BORDER)
  48.  
  49. /* define rows and cols */
  50.  
  51. #define ROW1    (Y_LOC)
  52. #define ROW2    (Y_LOC + H_BASE_TILE)
  53. #define ROW3    (Y_LOC + (H_BASE_TILE * 2))
  54. #define ROW4    (Y_LOC + (H_BASE_TILE * 3))
  55. #define ROW4pt5    (Y_LOC + (H_BASE_TILE * 3) + (H_BASE_TILE / 2))
  56. #define ROW5    (Y_LOC + (H_BASE_TILE * 4))
  57. #define ROW6    (Y_LOC + (H_BASE_TILE * 5))
  58. #define ROW7    (Y_LOC + (H_BASE_TILE * 6))
  59. #define ROW8    (Y_LOC + (H_BASE_TILE * 7))
  60.  
  61. #define COL1    (X_LOC)
  62. #define COL2    (X_LOC + W_BASE_TILE)
  63. #define COL3    (X_LOC + (W_BASE_TILE * 2))
  64. #define COL4    (X_LOC + (W_BASE_TILE * 3))
  65. #define COL5    (X_LOC + (W_BASE_TILE * 4))
  66. #define COL6    (X_LOC + (W_BASE_TILE * 5))
  67. #define COL7    (X_LOC + (W_BASE_TILE * 6))
  68. #define COL7pt5    (X_LOC + (W_BASE_TILE * 6) + (W_BASE_TILE / 2))
  69. #define COL8    (X_LOC + (W_BASE_TILE * 7))
  70. #define COL9    (X_LOC + (W_BASE_TILE * 8))
  71. #define COL10    (X_LOC + (W_BASE_TILE * 9))
  72. #define COL11    (X_LOC + (W_BASE_TILE * 10))
  73. #define COL12    (X_LOC + (W_BASE_TILE * 11))
  74. #define COL13    (X_LOC + (W_BASE_TILE * 12))
  75. #define COL14    (X_LOC + (W_BASE_TILE * 13))
  76. #define COL15    (X_LOC + (W_BASE_TILE * 14))
  77.  
  78. /* Tile structure */
  79.  
  80. typedef struct tile {
  81.     Pixrect      *image;
  82.     int         value;
  83.     boolean     left_free;
  84.     boolean     right_free;
  85.     boolean     top_free;
  86.     int         left_next[2];
  87.     int         right_next[2];
  88.     int         covered[4];
  89.     boolean     removed;
  90. } Tiles;
  91.  
  92. typedef struct sel { 
  93.         boolean        filled;
  94.         Panel_item      item;
  95.         Event           event; 
  96. } Selected;
  97.  
  98. /* global externals */
  99.  
  100. /* color closed icon image */
  101.  
  102. extern Pixrect        cicon_image;
  103.  
  104. /* black and white number tiles */
  105.  
  106. extern Pixrect        NUM0;
  107. extern Pixrect        NUM1;
  108. extern Pixrect        NUM2;
  109. extern Pixrect        NUM3;
  110. extern Pixrect        NUM4;
  111. extern Pixrect        NUM5;
  112. extern Pixrect        NUM6;
  113. extern Pixrect        NUM7;
  114. extern Pixrect        NUM8;
  115. extern Pixrect        NUM9;
  116.  
  117. /* color number tiles */
  118.  
  119. extern Pixrect        cNUM0;
  120. extern Pixrect        cNUM1;
  121. extern Pixrect        cNUM2;
  122. extern Pixrect        cNUM3;
  123. extern Pixrect        cNUM4;
  124. extern Pixrect        cNUM5;
  125. extern Pixrect        cNUM6;
  126. extern Pixrect        cNUM7;
  127. extern Pixrect        cNUM8;
  128. extern Pixrect        cNUM9;
  129.  
  130. /* black and white playing tiles */
  131.  
  132. extern Pixrect        BLANK;
  133. extern Pixrect        DOT1;
  134. extern Pixrect        DOT2;
  135. extern Pixrect        DOT3;
  136. extern Pixrect        DOT4;
  137. extern Pixrect        DOT5;
  138. extern Pixrect        DOT6;
  139. extern Pixrect        DOT7;
  140. extern Pixrect        DOT8;
  141. extern Pixrect        DOT9;
  142. extern Pixrect        BAM1;
  143. extern Pixrect        BAM2;
  144. extern Pixrect        BAM3;
  145. extern Pixrect        BAM4;
  146. extern Pixrect        BAM5;
  147. extern Pixrect        BAM6;
  148. extern Pixrect        BAM7;
  149. extern Pixrect        BAM8;
  150. extern Pixrect        BAM9;
  151. extern Pixrect        CHA1;
  152. extern Pixrect        CHA2;
  153. extern Pixrect        CHA3;
  154. extern Pixrect        CHA4;
  155. extern Pixrect        CHA5;
  156. extern Pixrect        CHA6;
  157. extern Pixrect        CHA7;
  158. extern Pixrect        CHA8;
  159. extern Pixrect        CHA9;
  160. extern Pixrect        GRED;
  161. extern Pixrect        REDD;
  162. extern Pixrect        WHTD;
  163. extern Pixrect        EAST;
  164. extern Pixrect        WEST;
  165. extern Pixrect        SOUT;
  166. extern Pixrect        NORT;
  167. extern Pixrect        AUT;
  168. extern Pixrect        SUM;
  169. extern Pixrect        SPR;
  170. extern Pixrect        WIN;
  171. extern Pixrect        ORC;
  172. extern Pixrect        MUM;
  173. extern Pixrect        BAM;
  174. extern Pixrect        PLM;
  175.  
  176. /* color playing tiles */
  177.  
  178. extern Pixrect        cBLANK;
  179. extern Pixrect        cDOT1;
  180. extern Pixrect        cDOT2;
  181. extern Pixrect        cDOT3;
  182. extern Pixrect        cDOT4;
  183. extern Pixrect        cDOT5;
  184. extern Pixrect        cDOT6;
  185. extern Pixrect        cDOT7;
  186. extern Pixrect        cDOT8;
  187. extern Pixrect        cDOT9;
  188. extern Pixrect        cBAM1;
  189. extern Pixrect        cBAM2;
  190. extern Pixrect        cBAM3;
  191. extern Pixrect        cBAM4;
  192. extern Pixrect        cBAM5;
  193. extern Pixrect        cBAM6;
  194. extern Pixrect        cBAM7;
  195. extern Pixrect        cBAM8;
  196. extern Pixrect        cBAM9;
  197. extern Pixrect        cCHA1;
  198. extern Pixrect        cCHA2;
  199. extern Pixrect        cCHA3;
  200. extern Pixrect        cCHA4;
  201. extern Pixrect        cCHA5;
  202. extern Pixrect        cCHA6;
  203. extern Pixrect        cCHA7;
  204. extern Pixrect        cCHA8;
  205. extern Pixrect        cCHA9;
  206. extern Pixrect        cGRED;
  207. extern Pixrect        cREDD;
  208. extern Pixrect        cWHTD;
  209. extern Pixrect        cEAST;
  210. extern Pixrect        cWEST;
  211. extern Pixrect        cSOUT;
  212. extern Pixrect        cNORT;
  213. extern Pixrect        cAUT;
  214. extern Pixrect        cSUM;
  215. extern Pixrect        cSPR;
  216. extern Pixrect        cWIN;
  217. extern Pixrect        cORC;
  218. extern Pixrect        cMUM;
  219. extern Pixrect        cBAM;
  220. extern Pixrect        cPLM;
  221.  
  222. /* cursor images */
  223.  
  224. extern Pixrect        stick;
  225. extern Pixrect        waiting;
  226. extern Pixrect        confirm;
  227.